﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace Furiant.Figment.Items.Lootable
{
    public interface ILootContainer : IGameObjectContainer<ILootable>
    {
        ILootable this[int index] { get; }
        
        /// <summary>
        /// Gets the sum of the TotalMass values of all items in the collection.
        /// </summary>
        int ContentsMassTotal { get; }

        int? MassMax { get; }

        int? MassAvailable { get; }

        int ItemCount { get; }

        int? ItemCountMax { get; }

        int? ItemCountAvailable { get; }

        int ContentsUnitCountTotal { get; }


        void Add(ILootable item);
        bool Remove(ILootable item);

        
        event EventHandler<LootContainerContentsChangedArgs> ContainerContentsChanged;
        event EventHandler<LootContainerSumsChangedArgs> ContainerSumsChanged;
    }
}
